home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Plus 1995 #5 & #6
/
Amiga Plus CD - 1995 - No. 5 and 6.iso
/
pd
/
grafik
/
lightwave
/
lightwave-apr95
/
000183_owner-lightwave-l _Sat Apr 8 21:54:05 1995.msg
< prev
next >
Wrap
Internet Message Format
|
1995-05-06
|
7KB
Return-Path: <owner-lightwave-l>
Received: by mail2.netcom.com (8.6.12/Netcom)
id PAA00607; Sat, 8 Apr 1995 15:56:01 -0700
Received: from gaspra.pd.com by mail2.netcom.com (8.6.12/Netcom)
id PAA00523; Sat, 8 Apr 1995 15:55:17 -0700
Received: by gaspra.pd.com (8.6.9/1.37)
id PAA10882; Sat, 8 Apr 1995 15:37:21 -0700
Date: Sat, 8 Apr 1995 15:37:19 -0700 (MST)
From: Dave Gilinsky <dave@gaspra.pd.com>
To: Lightwave List <lightwave-l@netcom.com>
Subject: Re: Revenge of the NURBS
In-Reply-To: <v02110100abab27f834cc@[192.0.2.1]>
Message-ID: <Pine.SUN.3.91.950407153004.4538C-100000@gaspra.pd.com>
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
Sender: owner-lightwave-l@netcom.com
Precedence: bulk
On Fri, 7 Apr 1995, Carl Andrew Johnson wrote:
> I've heard the term for a couple of years now, but I have no clue as to
> what it means.
>
> *WHAT* is a.... NURB.
>
I'm glad you asked that. ;)
The following description of 'NURB' is intended to be taken as a brief
introduction to splines, preferably with a chaser. For more information,
you should read Computer Graphics
Principles and Practice
Foley, van Dam, Feiner, Hughes
Second Edition
Addison Wesley Publishing Company
ISBN 0-201-12110-7
'NURB' stands for nonuniform rational B-spline. We may obtain an
understanding of the phrase by working through it from 'spline' to
'non-uniform'. According to Computer Graphics by James Foley, Andries van
Dan, et al., the term spline alludes to the "long flexible strips of metal
used by draftspersons to lay out the surfaces of airplanes, cars and
ships." These strips of metal had weights attached to them by which the
draftsperson could pull the spline in various directions to make all
kinds of curves.
The method of simulating curves that Lightwave users are probably
most familiar with is first degree, piecewise linear approximation. Using
this method, an animator or modeler uses many linear or planer elements to
approximate a curve or surface. Surfaces are built out of planer
polygons; the more polygons are added, the more closely the modeled
surface resembles a 'real', smoothly curving surface. Surfaces result
whose visual integrity is dependent on tens or hundreds of thousands of
polygons with critical positions.
Another method of simulating curves is parametric representation.
Using this method, curves are approximated by stringing polynomial curves
together rather than stringing lines together. Each curve segment is
defined by three cubic polynomial functions. For example, a curve segment
might look like this: Q(t)=[x(t) y(t) z(t)], where the polynomials are of
the form
x(t) = axt^3 + bxt^2 + cxt + dx,
y(t) = ayx^3 + byt^2 + cyt + dy,
z(t) = azt^3 + bzt^2 + czt + dz, 0<=t<=1.
| | | |
these columns should be subscripted so should these things
|
If curve segments join together, they are said to have G0 geometric
continuity. It's often useful to have curve segments join together, so G0
continuity is pretty important. Other types of continuity are defined by
comparing the derivatives of the curve segments, called the parametric
tangent vectors. If the tangent vectors of two segments are equal in
direction at the joint point, they are said to have G1 geometric
continuity. If the tangent vectors of two curve segments are equal in
both direction and magnitude at their joint point, the curve is said to be
C1 continuous, or have first degree continuity. The degree of continuity
is dependent on through how many derivatives the direction and magnitude
of the tangent vectors at the joint point are equal. For example, if the
tangent vectors at the joint point of two curves are equal through the nth
derivative, the curve is said to have Cn continuity. This is important to
understand from an animators point of view, because the tangent vector
Q'(t) is the velocity of a point on the curve with respect to the
parameter t. The second derivative of Q(t) is the acceleration. A curve
with C2 continuity will have continuous acceleration across the joint
point.
Getting back to the topic, B-splines are curves consisting of m-2
cubic polynomial curve segments which approximate a series of m+1 control
points where m=>3. The 'B' part comes from the fact that these splines
can be represented as the weighted sums of polynomial basis functions,
where natural splines cannot. B-splines have C0, C1 and C2 continuity.
They do not interpolate their control points. B-splines are said to have
"local control" in that the polynomial coefficients of the curve segments
are not dependent on all the control points, as they are in natural cubic
splines. This means that moving one of the approximation control points
for a B-spline only affects a small part of a curve, not the whole thing,
as it would in a natural cubic spline. If the parameter domains for the
curve segments are sequential, so that the range on which Qi is defined
is ti<=t<=ti+1, then for each i=>4, there is a joint point called a "knot"
between Qi-1 and Qi at the parameter value ti.
Rational B-splines are those whose curve segments are ratios of
polynomials, like this
x(t)=XT(t)/W(t) y(t)=Y(t)/W(t) z(t)=Z(t)/W(t)
This is important because rational curves are invariant under rotation,
scaling, translation and perspective transformations of the control
points. Nonrational curves are not invariant under perspective
transformations of the control points. Rational curves can also define any
of the conic sections without using large numbers of control points close to
the conic.
Nonuniform B-splines can have parameter intervals between knot
values that are not uniform. This means that knots and control points
can be added to reshape curves at any time. Control points can
have C0 continuity and be interpolated without neighboring segments being
straight lines. Starting and ending points can be also be interpolated
exactly without neighboring segments being straight lines.
So, NURBS are curves made up of segments, which are ratios of cubic
polynomials, that can be manipulated independently of one another between
joints called knots that don't have to be spaced at even intervals.
I'm sure someone will let me know if I made any ridiculous mistakes.;)
See you all at NAB!
Dave Gilinsky (DG75)
Pixel Dust, Inc.
dave@gaspra.pd.com
_______________________________________________________________________________